Use tf_printf() for debug logs from xlat_tables.c
authorSoby Mathew <[email protected]>
Tue, 19 Jan 2016 17:52:28 +0000 (17:52 +0000)
committerSoby Mathew <[email protected]>
Mon, 1 Feb 2016 10:10:09 +0000 (10:10 +0000)
The debug prints used to debug translation table setup in xlat_tables.c
used the `printf()` standard library function instead of the stack
optimized `tf_printf()` API. DEBUG_XLAT_TABLE option was used to enable
debug logs within xlat_tables.c and it configured a much larger stack
size for the platform in case it was enabled. This patch modifies these
debug prints within xlat_tables.c to use tf_printf() and modifies the format
specifiers to be compatible with tf_printf(). The debug prints are now enabled
if the VERBOSE prints are enabled in Trusted Firmware via LOG_LEVEL build
option.

The much larger stack size definition when DEBUG_XLAT_TABLE is defined
is no longer required and the platform ports are modified to remove this
stack size definition.

Change-Id: I2f7d77ea12a04b827fa15e2adc3125b1175e4c23

include/plat/arm/board/common/board_arm_def.h
lib/aarch64/xlat_tables.c
plat/mediatek/mt8173/include/platform_def.h
plat/nvidia/tegra/include/platform_def.h

index b4e431348014fb4a73a9f6452be9a056aaadd5c3..db2a8dfb062e207655faf483dfdd9a943642c230 100644 (file)
@@ -39,9 +39,7 @@
  */
 
 /* Size of cacheable stacks */
-#if DEBUG_XLAT_TABLE
-# define PLATFORM_STACK_SIZE 0x800
-#elif IMAGE_BL1
+#if IMAGE_BL1
 #if TRUSTED_BOARD_BOOT
 # define PLATFORM_STACK_SIZE 0x1000
 #else
index b00dc0be1d01a1788beb0f42b6e4a34a71a952af..2f2ca814ebee190844921e3bed1cd5aa406913bd 100644 (file)
 #include <assert.h>
 #include <bl_common.h>
 #include <cassert.h>
+#include <debug.h>
 #include <platform_def.h>
 #include <string.h>
 #include <xlat_tables.h>
 
-
-#ifndef DEBUG_XLAT_TABLE
-#define DEBUG_XLAT_TABLE 0
-#endif
-
-#if DEBUG_XLAT_TABLE
-#define debug_print(...) printf(__VA_ARGS__)
+#if LOG_LEVEL >= LOG_LEVEL_VERBOSE
+#define LVL0_SPACER ""
+#define LVL1_SPACER "  "
+#define LVL2_SPACER "    "
+#define LVL3_SPACER "      "
+#define get_level_spacer(level)                \
+                       (((level) == 0) ? LVL0_SPACER : \
+                       (((level) == 1) ? LVL1_SPACER : \
+                       (((level) == 2) ? LVL2_SPACER : LVL3_SPACER)))
+#define debug_print(...) tf_printf(__VA_ARGS__)
 #else
 #define debug_print(...) ((void)0)
 #endif
@@ -74,12 +78,12 @@ static mmap_region_t mmap[MAX_MMAP_REGIONS + 1];
 
 static void print_mmap(void)
 {
-#if DEBUG_XLAT_TABLE
+#if LOG_LEVEL >= LOG_LEVEL_VERBOSE
        debug_print("mmap:\n");
        mmap_region_t *mm = mmap;
        while (mm->size) {
-               debug_print(" %010lx %010lx %10lx %x\n", mm->base_va,
-                                       mm->base_pa, mm->size, mm->attr);
+               debug_print(" VA:0x%lx  PA:0x%lx  size:0x%lx  attr:0x%x\n",
+                               mm->base_va, mm->base_pa, mm->size, mm->attr);
                ++mm;
        };
        debug_print("\n");
@@ -209,8 +213,8 @@ static mmap_region_t *init_xlation_table(mmap_region_t *mm,
                        continue;
                }
 
-               debug_print("      %010lx %8lx " + 6 - 2 * level, base_va,
-                               level_size);
+               debug_print("%s VA:0x%lx size:0x%x ", get_level_spacer(level),
+                               base_va, level_size);
 
                if (mm->base_va >= base_va + level_size) {
                        /* Next region is after area so nothing to map yet */
index 7759b3eeac2daf54b64e7a8f9de5e189529b8b5d..0573bc5e8cc305d47fb1d33ee293063cefb754f1 100644 (file)
@@ -31,7 +31,6 @@
 #ifndef __PLATFORM_DEF_H__
 #define __PLATFORM_DEF_H__
 
-#define DEBUG_XLAT_TABLE 0
 
 /*******************************************************************************
  * Platform binary types for linking
@@ -44,9 +43,7 @@
  ******************************************************************************/
 
 /* Size of cacheable stacks */
-#if DEBUG_XLAT_TABLE
-#define PLATFORM_STACK_SIZE 0x800
-#elif IMAGE_BL1
+#if IMAGE_BL1
 #define PLATFORM_STACK_SIZE 0x440
 #elif IMAGE_BL2
 #define PLATFORM_STACK_SIZE 0x400
index 2a7935fd086ccb4728e052445102a0520ff47205..70ddaa9a1abf21d81b7a605cb479c49ec453aee3 100644 (file)
@@ -40,9 +40,7 @@
  ******************************************************************************/
 
 /* Size of cacheable stacks */
-#if DEBUG_XLAT_TABLE
-#define PLATFORM_STACK_SIZE 0x800
-#elif IMAGE_BL31
+#if IMAGE_BL31
 #define PLATFORM_STACK_SIZE 0x400
 #endif